home *** CD-ROM | disk | FTP | other *** search
/ Aminet 5 / Aminet 5 - March 1995.iso / Aminet / dev / m2 / Turbo_1.lha / modula / ansi-c / StdIO.mod < prev    next >
Text File  |  1995-01-24  |  1KB  |  49 lines

  1. (* These are macros in DICE, and so are not implemented in c.lib *)
  2. IMPLEMENTATION MODULE StdIO ; (* Entirely DICE specific *)
  3.  
  4. FROM SYSTEM IMPORT ADDRESS ;
  5. IMPORT StdIO, Iob, SYSTEM ;
  6.  
  7. CONST
  8.   SIF_EOF = BITSET( 00002 ) ;
  9.  
  10. PROCEDURE clearerr( fi : FILEPtr ) ;
  11. BEGIN fi^.sd_Flags := fi^.sd_Flags-SIF_EOF ; fi^.sd_Error := 0 ;
  12. END clearerr ;
  13.  
  14. PROCEDURE feof( fi : FILEPtr ) : BOOLEAN ;
  15. BEGIN RETURN (fi^.sd_Flags*SIF_EOF) # {} ;
  16. END feof ;
  17.  
  18. PROCEDURE ferror( fi : FILEPtr ) : LONGINT ;
  19. BEGIN RETURN fi^.sd_Error
  20. END ferror ;
  21.  
  22. PROCEDURE fileno( fi : FILEPtr ) : LONGINT ;
  23. BEGIN RETURN fi^.sd_Fd
  24. END fileno ;
  25.  
  26. PROCEDURE getc( fi : FILEPtr ) : LONGINT ;
  27. BEGIN RETURN StdIO.fgetc( fi )
  28. END getc ;
  29.  
  30. PROCEDURE putc( c : LONGINT ; fi : FILEPtr ) : LONGINT ;
  31. BEGIN RETURN StdIO.fputc( c , fi )
  32. END putc ;
  33.  
  34. PROCEDURE getchar( ) : LONGINT ;
  35. BEGIN RETURN StdIO.fgetc( stdin )
  36. END getchar ;
  37.  
  38. PROCEDURE putchar( c : LONGINT ) : LONGINT ;
  39. BEGIN RETURN StdIO.fputc( c , stdout )
  40. END putchar ;
  41.  
  42. BEGIN
  43.   stdin  := SYSTEM.ADR( Iob._Iob ) ;
  44.   stdout := FILEPtr( ADDRESS( stdin  ) + SIZE( FILE ) ) ;
  45.   stderr := FILEPtr( ADDRESS( stdout ) + SIZE( FILE ) ) ;
  46. END StdIO.
  47.  
  48.  
  49.